/**
 * 用户相关类型定义
 * 
 * 注：此文件仅作为类型定义参考，在JavaScript项目中可视为可选文档
 * 如果项目使用TypeScript，可以作为真正的类型定义文件
 */

/**
 * 用户类型
 * @typedef {Object} User
 * @property {string} _id - 用户ID
 * @property {string} [username] - 用户名
 * @property {string} [email] - 邮箱
 * @property {string} [nickname] - 昵称（微信昵称）
 * @property {string} [avatarUrl] - 头像URL（微信头像）
 * @property {string} [gender] - 性别，枚举：['男', '女', '其他', '保密']
 * @property {string} [country] - 国家（来自微信）
 * @property {string} [province] - 省份（来自微信）
 * @property {string} [city] - 城市（来自微信）
 * @property {Date} [birthDate] - 出生日期
 * @property {number} [height] - 身高（厘米）
 * @property {string} [diabetesType] - 糖尿病类型，枚举：['1型', '2型', '妊娠期', '前期', '无', '其他']
 * @property {Date} [diagnosisDate] - 诊断日期
 * @property {boolean} isProfileComplete - 是否已完成个人资料设置
 * @property {string} role - 用户角色，枚举：['user', 'admin']
 * @property {Date} createdAt - 创建时间
 * @property {Date} updatedAt - 更新时间
 */

/**
 * 微信登录请求参数
 * @typedef {Object} WechatLoginRequest
 * @property {string} code - 小程序登录code
 * @property {Object} [userInfo] - 用户信息（来自getUserInfo）
 * @property {string} [userInfo.nickName] - 昵称
 * @property {string} [userInfo.avatarUrl] - 头像URL
 * @property {number} [userInfo.gender] - 性别，1为男性，2为女性
 * @property {string} [userInfo.country] - 国家
 * @property {string} [userInfo.province] - 省份
 * @property {string} [userInfo.city] - 城市
 */

/**
 * 登录响应
 * @typedef {Object} LoginResponse
 * @property {boolean} success - 是否成功
 * @property {string} message - 响应消息
 * @property {Object} data - 响应数据
 * @property {string} data._id - 用户ID
 * @property {string} [data.openid] - 微信openid（仅微信登录返回）
 * @property {string} [data.nickname] - 昵称（仅微信登录返回）
 * @property {string} [data.avatarUrl] - 头像URL（仅微信登录返回）
 * @property {boolean} [data.isProfileComplete] - 是否已完成健康资料填写（仅微信登录返回）
 * @property {string} data.token - JWT令牌
 */

/**
 * 健康资料更新请求
 * @typedef {Object} HealthProfileUpdateRequest
 * @property {string} [gender] - 性别
 * @property {string} [birthDate] - 出生日期（ISO格式）
 * @property {number} [height] - 身高（厘米）
 * @property {string} [diabetesType] - 糖尿病类型
 * @property {string} [diagnosisDate] - 诊断日期（ISO格式）
 */

// 示例：前端如何使用这些类型（用JavaScript注释方式）
/*
// 微信登录示例
async function wechatLogin() {
  try {
    // 获取微信登录code
    const { code } = await wx.login();
    
    // 获取用户信息（如果用户授权）
    let userInfo = null;
    try {
      const res = await wx.getUserProfile({
        desc: '用于完善会员资料'
      });
      userInfo = res.userInfo;
    } catch (err) {
      console.log('用户未授权获取信息');
    }
    
    // 调用后端登录接口
    const res = await wx.request({
      url: 'http://localhost:5001/api/users/wx-login',
      method: 'POST',
      data: { code, userInfo }
    });
    
    if (res.data.success) {
      // 保存令牌
      wx.setStorageSync('token', res.data.data.token);
      
      // 如果是首次登录且未填写健康资料，跳转到健康资料填写页面
      if (!res.data.data.isProfileComplete) {
        wx.navigateTo({
          url: '/pages/health-profile/health-profile'
        });
      } else {
        wx.switchTab({
          url: '/pages/index/index'
        });
      }
    }
  } catch (error) {
    console.error('登录失败', error);
  }
}
*/ 